package com.xkcyy.one.ai.llm.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 聊天请求模型
 * 
 * @author yuand
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ChatRequest {
//
//    /**
//     * OpenAI API的URL
//     */
//    private String baseUrl;
//    /**
//     * OpenAI API的密钥
//     */
//    private String apiKey;

    /**
     * 模型名称
     */
    private String model;

    /**
     * 消息列表
     */
    private List<ChatMessage> messages;

    /**
     * 工具列表
     */
//    @JsonProperty("tool_calls")
    private List<ToolDefinition> tools;

    /**
     * 工具选择
     */
//    private Map<String, Object> toolChoice;
    // todo tool_choice
    private String toolChoice = "auto";
    /**
     * 温度参数
     */
    private Double temperature;

    /**
     * 最大token数
     */
    private Integer maxTokens;

    /**
     * 核心采样
     */
    private Double topP;

    /**
     * 惩罚重复度
     */
    private Double presencePenalty;

    /**
     * 惩罚频率
     */
    private Double frequencyPenalty;

    /**
     * 是否流式输出
     */
    private Boolean stream;
}